package com.itheima.day18.第一题;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

//请使用反射技术，创建该类的对象，并为对象的属性赋值，然后反射调用显示信息的方法。
public class Demo {
    public static void main(String[] args) throws Exception {
        //获取class字节码文件对象
        Class aClass = Class.forName("com.itheima.day18.第一题.Student");
        //通过反射获取student类的对象
        Student stu = (Student) aClass.newInstance();
        //获取该类的属性
        Field age = aClass.getDeclaredField("age");
        Field name = aClass.getDeclaredField("name");
        //取消访问检查
        name.setAccessible(true);
        age.setAccessible(true);
        //调用set方法,赋值
        name.set(stu,"张三");
        age.set(stu,21);
        //获取该类的showInfo方法
        Method showInfo = aClass.getDeclaredMethod("showInfo");
        //取消访问检查
        showInfo.setAccessible(true);
        //通过invoke方法调用该类的方法
        showInfo.invoke(stu);

    }
}
